Задана матрица n
× n, которую
будем называть массивом [1 .. n] × [1 .. n]. Для заданных r и c выведите подматрицу размером [1 .. r] × [1 .. c],
состоящую из первых r строк и первых c столбцов исходной матрицы.
Вход. Первая строка содержит целое число n (1 ≤ n ≤ 100). Следующие n строк содержат элементы матрицы
размером n × n.
Последняя строка содержит два целых числа r
и c (1 ≤ r, c ≤ n). Все элементы матрицы не превышают по
модулю 100.
Выход. Выведите подматрицу размером r × c, состоящую из первых r строк и
первых c столбцов исходной матрицы.
Пример входа 1 |
Пример выхода 1 |
4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 3 2 |
1 2 5 6 9 1 |
|
|
Пример входа 2 |
Пример выхода 2 |
5 1 5 -3 2 6 6 3 34 5 8 10 12 3 18
-25 13 22 11 9
45 23 39 20 15
-49 4 3 |
1 5 -3 6 3 34 10 12 3 13 22 11 |
двумерный массив
Прочитаем
входную матрицу в двумерный массив. Затем выведем подматрицу размером [1 .. r] × [1 ..
c].
Реализация алгоритма
Объявим
двумерный массив.
int m[101][101];
Читаем
входную матрицу n × n.
scanf("%d", &n);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
scanf("%d", &m[i][j]);
Читаем значения r и c.
scanf("%d %d", &r, &c);
Выводим подматрицу r × c.
for (i = 1; i <= r; i++)
{
for (j = 1; j <= c; j++)
printf("%d ", m[i][j]);
printf("\n");
}
Java реализация
import
java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int m[][] = new int[n][n];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
m[i][j] = con.nextInt();
int r = con.nextInt();
int c = con.nextInt();
for(int i = 0; i < r; i++)
{
for(int j = 0; j < c; j++)
System.out.print(m[i][j] + " ");
System.out.println();
}
con.close();
}
}
Python реализация
Читаем
входные данные.
n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
r, c = map(int, input().split())
Выводим подматрицу r × c.
for i in range(r):
for j in range(c):
print(a[i][j],end = " ")
print()
Python реализация – подматрица
Читаем
входные данные.
n = int(input())
a = [list(map(int, input().split())) for _ in
range(n)]
r, c = map(int, input().split())
Выделяем из матрицы a подматрицу r × c.
res = [row[:c] for row in
a[:r]]
Выводим подматрицу r × c.
for row in res:
print(*row)